#统计恒生PB各机构管理人登录情况，输出可以释放连接的管理人
import pandas as pd
import os,sys
pyPath=os.path.dirname(os.path.realpath(sys.argv[0]))
print(pyPath)
登录日志目录=os.path.join(pyPath,"登录日志.xls")
公司管理目录=os.path.join(pyPath,"公司管理.xls")
登录日志=pd.read_excel(登录日志目录)
公司管理=pd.read_excel(公司管理目录)
公司管理=公司管理[["公司代码","公司简称","公司全称","机构客户端最大连接数","注册日期"]]
公司管理.columns=["公司代码","公司简称","所属公司","机构客户端最大连接数","注册日期"]
#计算各管理人每日最大登录数
登录日志.drop_duplicates(subset=["操作员代码","所属公司","发生日期"], keep='first', inplace=True, ignore_index=False)
登录日志去重 = 登录日志.groupby(['所属公司', '发生日期'], as_index=False).size()
登录日志去重.columns=["所属公司", "发生日期","登录次数"]
登录日志结果=登录日志去重.sort_values(by=["所属公司","登录次数"],ascending=[False,False])

登录日志结果.drop_duplicates(subset=["所属公司"], keep='first', inplace=True, ignore_index=False)
# 输出结果=pd.concat([公司管理,登录日志去重],axis = 1,join="outer")
输出结果=pd.merge(公司管理,登录日志结果,how="left")
输出结果["登录次数"].fillna(value=0, inplace=True)
输出结果["冗余连接数"]=输出结果["机构客户端最大连接数"]-输出结果["登录次数"]
输出结果.columns=["公司代码","公司简称","所属公司","机构客户端最大连接数","注册日期","发生日期","登录次数","冗余连接数"]
输出结果=输出结果.sort_values(by=["冗余连接数"],ascending=[False])
输出结果.to_csv(os.path.join(pyPath,"输出结果.csv"), index=False)
print("已保存数据")




